<?php

/**
 * 原理：从前往后，对相邻的两个数字依次进行比较调整，让较大的数字往下沉，不断交换位置，即每相邻的数字进行对比排序，顺序不符合时将其调换位置。（保证每一轮比较，最大的数字总在最后一个）
 */
class 冒泡
{
    public function 运行($输入数组)
    {
        $数组长度 = count($输入数组);

        if ($数组长度 <= 1) {
            return $输入数组;
        }

        for ($i = 0; $i < $数组长度; $i++) {
            for ($j = 0; $j < $数组长度 - $i - 1; $j++) {
                if ($输入数组[$j] > $输入数组[$j + 1]) {
                    $临时变量         = $输入数组[$j];
                    $输入数组[$j]     = $输入数组[$j + 1];
                    $输入数组[$j + 1] = $临时变量;
                }
            }
        }

        return $输入数组;
    }
}

$输入数组 = [5, 9, 6, 3, 1];
$实例 = new 冒泡();

$结果数组 = $实例->运行($输入数组);

print_r($结果数组);